Stored Procedures এবং Functions হল ডেটাবেজের মধ্যে প্রি-ডিফাইনড SQL কোড ব্লক, যেগুলি একটি নির্দিষ্ট কাজ বা লজিক সম্পাদন করার জন্য তৈরি করা হয়। এগুলি SQL কোডকে ম্যানেজমেন্ট ও পুনরায় ব্যবহারযোগ্য করার জন্য ডেটাবেজে সংরক্ষিত থাকে। H2 Database-এ Stored Procedures এবং Functions ব্যবহার করা সহজ এবং এতে উচ্চ কার্যক্ষমতা নিশ্চিত হয়।
Stored Procedure হল একটি SQL কোড ব্লক যা ডেটাবেজে সংরক্ষিত থাকে এবং একাধিক SQL অপারেশন সম্পাদন করতে সক্ষম। এটি ডেটাবেজ সার্ভারেই থাকে এবং EXECUTE কমান্ডের মাধ্যমে চালানো হয়। Stored Procedure-এ সাধারণত একাধিক SQL কুয়েরি, লজিক, শর্তাবলী এবং কন্ডিশনস থাকতে পারে।
H2 ডেটাবেজে Stored Procedure তৈরি করার জন্য CREATE PROCEDURE
স্টেটমেন্ট ব্যবহার করতে হয়।
CREATE ALIAS procedure_name FOR "package_name.procedure_name";
এখানে, আপনি CREATE PROCEDURE
দিয়ে নতুন procedure তৈরি করতে পারেন। নিচে একটি উদাহরণ দেওয়া হল:
CREATE PROCEDURE AddUser (id INT, name VARCHAR)
BEGIN
INSERT INTO Users (id, name) VALUES (?, ?);
END;
এই স্টোরড প্রোসিজারের মাধ্যমে Users
টেবিলে নতুন ইউজার যোগ করা হবে। id
এবং name
প্যারামিটার হিসেবে গ্রহণ করা হবে।
একবার Stored Procedure তৈরি করার পরে, এটি EXECUTE বা CALL কিওয়ার্ডের মাধ্যমে কল করা যায়। উদাহরণ:
CALL AddUser(1, 'John Doe');
এটি Users
টেবিলে id = 1
এবং name = 'John Doe'
সহ একটি নতুন রেকর্ড ইনসার্ট করবে।
Function একটি SQL কোড ব্লক, যা কোনও ডেটাবেজ অপারেশন সম্পাদন করে এবং একটি ফলাফল (রিটার্ন ভ্যালু) প্রদান করে। Stored Procedures থেকে ফাংশন আলাদা, কারণ ফাংশন সাধারণত একটি মান রিটার্ন করে এবং এটি SQL কুয়েরির অংশ হিসেবে ব্যবহৃত হতে পারে।
H2 ডেটাবেজে Function তৈরি করতে CREATE FUNCTION
ব্যবহার করা হয়। উদাহরণ:
CREATE FUNCTION GetUserName (id INT) RETURNS VARCHAR AS
BEGIN
DECLARE name VARCHAR;
SELECT name INTO name FROM Users WHERE id = id;
RETURN name;
END;
এখানে, GetUserName
ফাংশন Users
টেবিল থেকে id
অনুসারে name
রিটার্ন করবে।
ফাংশন কল করতে, এটি একটি SQL কুয়েরির অংশ হিসেবে ব্যবহার করা যেতে পারে:
SELECT GetUserName(1);
এটি Users
টেবিল থেকে id = 1
এর জন্য name
রিটার্ন করবে।
পার্থক্য | Stored Procedure | Function |
---|---|---|
রিটার্ন ভ্যালু | রিটার্ন ভ্যালু থাকতে পারে না | রিটার্ন ভ্যালু থাকে |
ব্যবহার | একাধিক SQL অপারেশন সম্পাদন করতে ব্যবহৃত | একটি মান রিটার্ন করতে ব্যবহৃত |
SQL কুয়েরির অংশ | SQL কুয়েরির অংশ হতে পারে না | SQL কুয়েরির অংশ হতে পারে |
কল করার পদ্ধতি | CALL বা EXECUTE দিয়ে কল করা হয় | সাধারণত SELECT বা INSERT কুয়েরি-তে ব্যবহার করা হয় |
এখানে একটি Stored Procedure তৈরি করা হচ্ছে যা Users
টেবিলে নতুন ইউজার যোগ করবে:
CREATE PROCEDURE AddUser (id INT, name VARCHAR)
BEGIN
INSERT INTO Users (id, name) VALUES (?, ?);
END;
এর পরে, আপনি এটি কল করতে পারেন:
CALL AddUser(1, 'John Doe');
এখানে একটি Function তৈরি করা হচ্ছে যা Users
টেবিল থেকে ইউজারের নাম ফেরত দেবে:
CREATE FUNCTION GetUserName (id INT) RETURNS VARCHAR AS
BEGIN
DECLARE name VARCHAR;
SELECT name INTO name FROM Users WHERE id = id;
RETURN name;
END;
এটি কল করা হবে এমনভাবে:
SELECT GetUserName(1);
এটি id = 1
এর জন্য নাম রিটার্ন করবে।
H2 Database-এ Stored Procedures এবং Functions ব্যবহারের মাধ্যমে আপনি ডেটাবেজ অপারেশনগুলোকে আরও মডুলার, পুনরায় ব্যবহারযোগ্য এবং কার্যকরী করতে পারেন। এগুলি ডেটাবেজের পারফরম্যান্স উন্নত করতে সাহায্য করে এবং কোডের রিডেবিলিটি বাড়ায়।
common.read_more